package proyecto;

import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;

public class infor{
String direccion;

    public infor(String direccion) {
        this.direccion = direccion;
    }


 public Aspirante TomaInfor() {

  try {
	  DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
	  DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
	  Document doc = dBuilder.parse(new File(direccion));
	  doc.getDocumentElement().normalize();
	  
	  NodeList informaciones = doc.getElementsByTagName("aspirante"); 

	    Node personal = informaciones.item(0);
                    Aspirante aspirante= new Aspirante();
	    if (personal.getNodeType() == Node.ELEMENT_NODE) {

            Element elementopersonal = (Element) personal;
            
            aspirante.setNombre(getTagValue("nombre", elementopersonal));
            aspirante.setID(getTagValue("Id", elementopersonal));
            aspirante.setProfesion(getTagValue("profecion", elementopersonal));
            aspirante.setEmail(getTagValue("email", elementopersonal));
          //informacion personal del aspirante
            NodeList secundarios=  doc.getElementsByTagName("estusecun");
             Node estudiosecu=secundarios.item(0);
             if(estudiosecu.getNodeType()==Node.ELEMENT_NODE){
                 Element elementosecun = (Element) estudiosecu;
                 Estudios secunda=new Estudios();
                 secunda.setLugar(getTagValue("lugar", elementosecun));
                 secunda.setTitulo(getTagValue("titulo", elementosecun));
                 secunda.setDirecion(getTagValue("direccion", elementosecun));
                 secunda.setTelefono(getTagValue("telefono", elementosecun));
                 secunda.setAños(getTagValue("años", elementosecun));
                 aspirante.setSecundario(secunda);
             }
             //estudios secundarios del aspirante
              NodeList universitarios=  doc.getElementsByTagName("estuuniver");
             Node univer=universitarios.item(0);
             if(univer.getNodeType()==Node.ELEMENT_NODE){
                 Element elementouniver = (Element) univer;
                 EstuUniver universi=new EstuUniver();
                 universi.setLugar(getTagValue("lugar", elementouniver));
                 universi.setTitulo(getTagValue("titulo", elementouniver));
                 universi.setDirecion(getTagValue("direccion", elementouniver));
                 universi.setTelefono(getTagValue("telefono", elementouniver));
                 universi.setAños(getTagValue("años", elementouniver));
                 universi.setSemestres(getTagValue("semestres", elementouniver));
                 universi.setCarrera(getTagValue("carrera", elementouniver));
                 aspirante.setUniversitarios(universi);
             }
             //estudis universitarios del aspirante
             NodeList experiencia=  doc.getElementsByTagName("experiencia");
             Node experi=experiencia.item(0);
             if(experi.getNodeType()==Node.ELEMENT_NODE){

                 Element exp = (Element) experi;
                 Experiencia expe=new Experiencia();

                 NodeList empresas=  doc.getElementsByTagName("empresa");
             Node empresa=empresas.item(0);
             if(empresa.getNodeType()==Node.ELEMENT_NODE){
                 Element elementouniver = (Element) empresa;
                 Empresa empre=new Empresa();
                 empre.setNombre(getTagValue("nombre", elementouniver));
                  empre.setNit(getTagValue("nit", elementouniver));
                  empre.setLugar(getTagValue("lugar", elementouniver));
                 empre.setTelefono(getTagValue("telefono", elementouniver));
                 expe.setEmpresa(empre);

             }//empresa donde realizo la experiencia

                 expe.setCargo(getTagValue("cargo", exp));
                 expe.setJefe(getTagValue("jefe", exp));
                 expe.setTiempo(getTagValue("tiempo", exp));
                 aspirante.setExperi(expe);
             }
             //experiencia de aspirante
              NodeList refepersonales=  doc.getElementsByTagName("refepersonales");
             Node refeper=refepersonales.item(0);
             if(refeper.getNodeType()==Node.ELEMENT_NODE){
                 Element refepersona = (Element) refeper;
                 Referencia personales=new Referencia();
                 personales.setNombre(getTagValue("nombre", refepersona));
                 personales.setTitulo(getTagValue("titulo", refepersona));
                 personales.setCargo(getTagValue("cargo", refepersona));
                personales.setEmpresa(getTagValue("nomempresa", refepersona));
                personales.setTelefono(getTagValue("telefono", refepersona));
                 aspirante.setPersonales(personales);
             }
             //referencias personales del aspirante
             NodeList refefamiliares=  doc.getElementsByTagName("refefamiliares");
             Node refefami=refefamiliares.item(0);
             if(refefami.getNodeType()==Node.ELEMENT_NODE){
                 Element refefamiliar = (Element) refefami;
                 RefeFamiliares familiar=new RefeFamiliares();
                 familiar.setNombre(getTagValue("nombre", refefamiliar));
                 familiar.setTitulo(getTagValue("titulo", refefamiliar));
                 familiar.setCargo(getTagValue("cargo", refefamiliar));
                familiar.setEmpresa(getTagValue("nomempresa", refefamiliar));
                familiar.setTelefono(getTagValue("telefono", refefamiliar));
                familiar.setParentesco(getTagValue("parentesco", refefamiliar));
                 aspirante.setFamiliares(familiar);
             } //referencias familiares
	    }return aspirante;
    
  } catch (Exception e) {
    e.printStackTrace();
  }
   return null;
 }

 private static String getTagValue(String sTag, Element eElement)
 {
	  NodeList nlList= eElement.getElementsByTagName(sTag).item(0).getChildNodes();
	  Node nValue = (Node) nlList.item(0);

	  return nValue.getNodeValue();

 }

}
